/****************************************************************************
 * 2025.5 小管
 ****************************************************************************/

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using QFramework;
using UnityEngine.U2D;
using System.Linq;
using QAssetBundle;

namespace ProjectSurviver
{
	public partial class AchievementPanel : UIElement, IController
	{
		ResLoader mResLoader = ResLoader.Allocate();


		private void Awake()
		{
			AchievementItemTemplate.Hide(); // 隐藏模板

			var iconAtlas = mResLoader.LoadSync<SpriteAtlas>("icon"); // 加载图集资源
			foreach (var achievementItem in this.GetSystem<AchievementSystem>().Items
			.OrderByDescending(item => item.Unlocked)) // 按照解锁状态排序
			{
				AchievementItemTemplate.InstantiateWithParent(AchievementItemRoot)
				.Self(s =>
				{
					s.GetComponentInChildren<Text>().text = "<b>" + achievementItem.Name
					+ (achievementItem.Unlocked ? "<color=green>【已完成】</color>" 
					: "") + "</b>\n" + achievementItem.Description; // 设置文本内容

					var sprite = iconAtlas.GetSprite(achievementItem.IconName); // 获取图标资源
					s.transform.Find("Icon").GetComponent<Image>().sprite = sprite; // 设置图标
				}).Show();
			}

			BtnClose.onClick.AddListener(() =>
			{
				AudioKit.PlaySound(Sfx.BUTTONCLICK);
				this.Hide(); // 隐藏界面
			});
		}

		/// <summary>
		/// 当界面被创建时调用
		/// </summary>
		protected override void OnBeforeDestroy()
		{
			mResLoader.Recycle2Cache(); // 回收资源
			mResLoader = null;	// 清空引用
		}

        public IArchitecture GetArchitecture()
        {
            return Global.Interface; // 这里返回的是全局的接口，也可以返回特定的接口，如：return mIArchitecture;
        }
    }
}